#!/bin/sh
# shellcheck disable=SC1091,SC3043
# This code is based on idea of https://github.com/egc112

WAN_INTERFACE='wan'
_ret='1'

insert_ip_rule() {
	local disabled proto listen_port
	config_get disabled "$1" disabled "0"
	config_get proto "$1" proto
	config_get listen_port "$1" listen_port
	if [ "$disabled" -ne '1' ] && [ "$proto" = 'wireguard' ] && [ -n "$listen_port" ]; then
		ip rule del sport "$listen_port" table "pbr_${WAN_INTERFACE}" >/dev/null 2>&1
		ip rule add sport "$listen_port" table "pbr_${WAN_INTERFACE}" >/dev/null 2>&1 && _ret=0
	fi
}

. /lib/functions.sh
config_load network
config_foreach insert_ip_rule 'interface'

return $_ret
